#define ONE 1      // 0000 0000
#define TWO (1<<1) // 0000 0010
#define THREE (1<<2)//0000 0100
#define FOUR (1<<3)// 0000 1000

#include <stdio.h>

void Print(int flag)
{

    if(flag&ONE)
    {
        printf("1");
        printf("\n");
    }
    if(flag&TWO)
    {
        printf("2");
        printf("\n");
    }
    if(flag&THREE)
    {
        printf("4");
        printf("\n");
    }
    if(flag&FOUR)
    {
        printf("8");
        printf("\n");
    }
}

int main()
{
    Print(ONE);
    Print(TWO);
    Print(THREE);
    Print(FOUR);
    printf("\n");
    Print(ONE|TWO);
    //PS：“|”有1则为1，所以就是将二进制中的1，都累加起来，那么进入函数之后
    //flag=ONE|TWO
    //上面函数中&【两个同时为1则为1】
    //所以在不同的if语句中，遇到不同二进制的1，都会走
    //上面if语句为多分支，只要“如果”成立就走
    //【满足A就走A，满足B就走B，两个都满足分别对应的两个都走】
    return 0;

}
